#元组:使用小括号，不能修改与删除***（类似const）***
num_list=(10,20,30)
print(type(num_list))#输出<class 'tuple'>
#num_list[0]=0 #会显示元组不支持项目赋值
#del num_list[2]
#print(num_list)#TypeError: 'tuple' object doesn't support item deletion
#其他功能是相似的
print(num_list[1])#输出20
#index索引和count计数都可以使用
print(num_list.index(20))#输出1
print(num_list.count(10))#输出1
print(len(num_list))#输出3
#字典 键值成对出现，键和值有一一对应关系（联想struct结构体）'key':'value'
dic={'name':'uni','age':18,'gender':'m'}
print(dic,type(dic))#输出{'name': 'uni', 'age': 18, 'gender': 'm'}<class 'dict'>
#1.增，改
#修改、添加方式：dic['key']=value，有则修改，无则添加
dic['name']='uny'
print(dic)#{'name': 'uny', 'age': 18, 'gender': 'm'}
dic['id']=26710
print(dic)#{'name': 'uny', 'age': 18, 'gender': 'm', 'id': 26710}
#2.删除：
#del可以使用
del dic['id']
print(dic)#{'name': 'uny', 'age': 18, 'gender': 'm'}
#clear全部清空
#dic.clear()
#print(dic)#{}
#3.查
#借助key就可以完成
print(dic['name'])#uny
print(dic.keys())#dict_keys(['name', 'age', 'gender'])
print(dic.items())#dict_items([('name', 'uny'), ('age', 18), ('gender', 'm')])
print(dic.values())#dict_values(['uny', 18, 'm'])
#循环取出所有变量
for value in dic.values():
    print(value)
#注意：仅仅写dic会默认为dic.keys
#循环遍历items是同理的

#集合：使用大括号，与字典相比没有keys
A={'year','month','day'}
print(type(A))#输出<class 'set'>
#set定义法：
B=set('abcdef')
print(B)#{'d', 'f', 'b', 'e', 'a', 'c'},说明集合是无序的,不能进行下标操作
#注意：如果使用{}定义空集合，类型会变成dic
#这个时候就应该用set

#使用add进行添加
A.add('century')
print(A)#{'year', 'day', 'month', 'century'}
#集合中的元素是不重复的，添加重复内容会自动去重
#使用update添加：前提是使用update添加的对象应该是可迭代的
A.update((1,2))
print(A)#{1, 'day', 'month', 2, 'century', 'year'}

#remove 删除集合中指定的数据，不存在就报错
A.remove(1)
print(A)#{2, 'day', 'century', 'month', 'year'}
#discard 删除集合中指定的数据，不存在则不报错
#pop 随机删除集合中的某个数据，并返回这个数据
deleted_num=B.pop()
print(deleted_num)#输出c
print(B)#{'a', 'd', 'e', 'b', 'f'}
#交集与并集
a={1,2,3,4}
b={3,4,5,6}
test1=a&b
test2=a|b
print(test1,test2)#输出{3, 4} {1, 2, 3, 4, 5, 6}
'''元组、字典和集合都可以使用+进行拼接
使用in和not in 进行判断是否元素在容器中
使用len获得容器中元素个数
使用del删除元素
range
enumerate:(下标+数据)
'''
#推导式
list1=[i for i in range(10)]
print(list1)#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#再将列表转化为元组
print(tuple(list1))#(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
#字典相似
dic2={i:i**2 for i in range(1,5)}
print(dic2)#{1: 1, 2: 4, 3: 9, 4: 16}